<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../" />
		<script src="list.js"></script>
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Object3D] &rarr;

		<h1>[name]</h1>

		<div class="desc">
			Creates a simulated lens flare that tracks a light.<br /><br />

			Note: [page:WebGLRenderer.alpha] must be set to *true* for LensFlare to work.
		</div>

		<h2>Example</h2>

		<div>
			[example:webgl_lensflares lensflares]

			<code>
var light = new THREE.PointLight( 0xffffff, 1.5, 2000 );

var textureLoader = new THREE.TextureLoader();

var textureFlare = textureLoader.load( "textures/lensflare/lensflare.png" );

var flareColor = new THREE.Color( 0xffffff );
flareColor.setHSL( h, s, l + 0.5 );

var lensFlare = new THREE.LensFlare( textureFlare, 700, 0.0, THREE.AdditiveBlending, flareColor );
lensFlare.position.copy( light.position );

scene.add( lensFlare );
			</code>

		</div>

		<h2>Constructor</h2>


		<h3>[name]( [page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color] )</h3>
		<div>
		[page:Texture texture] - (optional) THREE.Texture to use for the flare. <br />
		[page:Float size] - (optional) size in pixels (-1 = use texture.width) <br />
		[page:Float distance] - (optional) (0-1) from light source (0 = at light source) <br />
		[page:Materials blending] - (optional) [page:Materials Blending Mode] - Defaults to THREE.NormalBlending <br />
		[page:Color color] - (optional) the [page:Color] of the lens flare<br /><br />

		Automatically adds a lens flare to the lensFlares array if a [page:Texture texture] is set.
		If [page:Texture texture] not passed here, [page:.add add] must be called later.
		</div>

		<h2>Properties</h2>
		<div>See the base [page:Object3D] class for common properties.</div>

		<h3>[property:Boolean isLensFlare]</h3>
		<div>
			Used to check whether this or derived classes are lens flares. Default is *true*.<br /><br />

			You should not change this, as it used internally for optimisation.
		</div>


		<h3>[property:array lensFlares]</h3>
		<div>
			The array of flares as set by [page:LensFlare.add] or passed in the constructor.
			Each flare is an object with the following defaults:
			<code>
{
	texture: texture,	// texture passed in the constructor or [page:.add add] method
	size: size, 		// if not passed in, default is -1
	distance: distance, 	// if not passed in, default is 0
	x: 0, y: 0, z: 0,	// screen position (-1 => 1) z = 0 is in front z = 1 is back
	scale: 1,
	rotation: 0,
	opacity: opacity,	// if not passed in, default is 1
	color: color,		// if not passed in, default is new Color( 0xffffff ) (white)
	blending: blending	// if not passed in, default is NormalBlending
}
			</code>
		</div>

		<h3>[property:Vector3 positionScreen]</h3>
		<div>The position of the lens flare on the screen.</div>

		<h3>[property:Function customUpdateCallback]</h3>
		<div>
		A custom update callback. Default is undefined, set this to override [page:.updateLensFlares updateLensFlares]().
		</div>

		<h2>Methods</h2>
		<div>See the base [page:Object3D] class for common methods.</div>


		<h3>[method:null add]( [page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color] )</h3>
		<div>
		Adds a lens flare. Takes the same parameters as the constructor.
		</div>

		<h3>[method:LensFlare clone]()</h3>
		<div>
			Return a new LensFlare with the same parameters as this one.
		</div>

		<h3>[method:LensFlare copy]( [page:LensFlare source] )</h3>
		<div>
			Copy the parameters from the [page:LensFlare source] LensFlare into this one.
		</div>

		<h3>[method:null updateLensFlares]()</h3>
		<div>
		Updates [page:.lensFlares lensFlares] based on the [page:LensFlare.positionScreen positionScreen] 
		property.<br /><br />

		Can be overridden by setting the [page:.customUpdateCallback customUpdateCallback] function.
		</div>


		<h2>Source</h2>

		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
	</body>
</html>
